// Map

// Map可用任何类型的值作为键，而对象当键不是字符串时，会在内部调用toString方法将键转为字符

const obj = {}
obj[true] = 'value'
obj[123] = 'value'
obj[{ a: 1 }] = 'value'

console.log(Object.keys(obj)) // [ '123', 'true', '[object Object]' ]
console.log(obj[{}]) // value
console.log(obj['[object Object]']) // value


const m = new Map()
const tom = { name: 'tom' }

m.set(tom, 90)
console.log(m)
console.log(m.get(tom))

console.log(m.has(tom))
// m.delete(tom)
// m.clear()
// console.log(m)

// 遍历map
// m.forEach((value, key) => {
//   console.log(value, key)
// })

for (let [key, value] of m) {
  console.log(key, value)
}
